<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">

<title>class Bundler::SpecSet - bundler: Ruby Standard Library Documentation</title>


<script src="../js/navigation.js" defer></script>
<script src="../js/search.js" defer></script>
<script src="../js/search_index.js" defer></script>
<script src="../js/searcher.js" defer></script>
<script src="../js/darkfish.js" defer></script>

<script src="../js/jquery-3.2.0.min.js"></script>

<script src="../js/vue.min.js"></script>
<script src="../js/js.cookie.min.js"></script>

<link href="../css/fonts.css" rel="stylesheet">
<link id='rdoccss' href="../css/rdoc.css" rel="stylesheet">
<link href="../css/carbon17.css" rel="stylesheet">

<script type="text/javascript">
  var rdoc_rel_prefix = "../";
  var index_rel_prefix = "../";
  var darkModeCsseHref = "../css/rdoc-dm.css"
  var defaultModeCssHref = "../css/rdoc.css"
  // var cssDarkmode = Cookies.get('darkmode');
  
  if( Cookies.get("darkmode") == "true") {
	$('#rdoccss').attr("href", darkModeCsseHref);
}

//  https://cssdeck.com/blog/simple-jquery-stylesheet-switcher/

document.write('<style type="text/css">body{display:none}</style>');

</script>


</head>
<body id="top" role="document" class="class">
  <!-- this is class.html -->

  <div id='actionbar' >
    <div class='wrapper mdiv'>
      <ul class='grids g0'></ul>
    </div> 
    <!-- VERSION HEADER for 3.3.0.preview2 NOT FOUND -->
  </div> <!-- end action bar -->

  <div class='wrapper hdiv'>

    


    <nav id='vapp' role="navigation">
    <div id="project-navigation">
      <div id="home-section" role="region" title="Quick navigation" class="nav-section">
  <h2><a href="../index.html" rel="home">Home</a></h2>

  <div id="table-of-contents-navigation"  >
    <a href="../table_of_contents.html#pages">Pages</a>
    <a href="../table_of_contents.html#classes">Classes</a>
    <a href="../table_of_contents.html#methods">Methods</a>
  </div>
</div>

      <div id="search-section" role="search" class="project-section initially-hidden">
  <form action="#" method="get" accept-charset="utf-8">
    <div id="search-field-wrapper">
      <input id="search-field" role="combobox" aria-label="Search"
             aria-autocomplete="list" aria-controls="search-results"
             type="text" name="search" placeholder="Search" spellcheck="false"
             title="Type to search, Up and Down to navigate, Enter to load">
    </div>

    <ul id="search-results" aria-label="Search Results"
        aria-busy="false" aria-expanded="false"
        aria-atomic="false" class="initially-hidden"></ul>
  </form>
</div>

    </div>


    

    <button id='toggleThing' @click="toggleNav()" >Show/hide navigation</button>
    <div :class="isOpen ? 'block' : 'hidden' " id='toggleMe'>
      <div id="class-metadata">
        
        
<div id="parent-class-section" class="nav-section">
  <h3>Parent</h3>

  <p class="link"><a href="../Object.html">Object</a>
</div>

        
<div id="includes-section" class="nav-section">
  <h3>Included Modules</h3>

  <ul class="link-list">
    <li><span class="include">Enumerable</span>
    <li><a class="include" href="TSort.html">Bundler::TSort</a>
  </ul>
</div>

        
        
<!-- Method Quickref -->
<div id="method-list-section" class="nav-section">
  <h3>Methods</h3>

  <ul class="link-list" role="directory">
    <li ><a href="#method-c-new">::new</a>
    <li ><a href="#method-i-2D">#-</a>
    <li ><a href="#method-i-3C-3C">#&lt;&lt;</a>
    <li ><a href="#method-i-5B-5D">#[]</a>
    <li ><a href="#method-i-5B-5D-3D">#[]=</a>
    <li ><a href="#method-i-delete">#delete</a>
    <li ><a href="#method-i-delete_by_name">#delete_by_name</a>
    <li ><a href="#method-i-each">#each</a>
    <li ><a href="#method-i-empty-3F">#empty?</a>
    <li ><a href="#method-i-extract_circular_gems">#extract_circular_gems</a>
    <li ><a href="#method-i-find_by_name_and_platform">#find_by_name_and_platform</a>
    <li ><a href="#method-i-for">#for</a>
    <li ><a href="#method-i-incomplete_ruby_specs-3F">#incomplete_ruby_specs?</a>
    <li ><a href="#method-i-length">#length</a>
    <li ><a href="#method-i-lookup">#lookup</a>
    <li ><a href="#method-i-materialize">#materialize</a>
    <li ><a href="#method-i-materialized_for_all_platforms">#materialized_for_all_platforms</a>
    <li ><a href="#method-i-merge">#merge</a>
    <li ><a href="#method-i-missing_specs">#missing_specs</a>
    <li ><a href="#method-i-size">#size</a>
    <li ><a href="#method-i-sort-21">#sort!</a>
    <li ><a href="#method-i-sorted">#sorted</a>
    <li ><a href="#method-i-specs_for_dependency">#specs_for_dependency</a>
    <li ><a href="#method-i-to_a">#to_a</a>
    <li ><a href="#method-i-to_hash">#to_hash</a>
    <li ><a href="#method-i-tsort_each_child">#tsort_each_child</a>
    <li ><a href="#method-i-tsort_each_node">#tsort_each_node</a>
    <li ><a href="#method-i-what_required">#what_required</a>
  </ul>
</div>

      </div>
     </div>
    </nav>


    <div id='extraz'><div class='adzbox-index'  >
      
     </div>         
    </div>

    <main role="main" aria-labelledby="class-Bundler::SpecSet">
    <h1 id="class-Bundler::SpecSet" class="class">
      class Bundler::SpecSet
    </h1>

    <section class="description">
    
    </section>

      <section id="5Buntitled-5D" class="documentation-section">



        <section class="attribute-method-details" class="method-section">
        <header>
        <h3>Attributes</h3>
        </header>

          <div id="attribute-i-incomplete_specs" class="method-detail">
            <div class="method-heading attribute-method-heading">
              <span class="method-name">incomplete_specs</span><span
                class="attribute-access-type">[R]</span>
            </div>

            <div class="method-description">
              
              </div>
            </div>
            </section>


                <section id="public-class-5Buntitled-5D-method-details" class="method-section">
                <header>
                <h3>Public Class Methods</h3>
                </header>

                  <div id="method-c-new" class="method-detail ">
                            <div class="method-heading">
                              <span class="method-name">new</span><span
                                class="method-args">(specs, incomplete_specs = [])</span>
                              <span class="method-click-advice">click to toggle source</span>
                            </div>

                            <div class="method-description">
                              

                              <div class="method-source-code" id="new-source">
            <pre><span class="ruby-comment"># File bundler/spec_set.rb, line 12</span>
<span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">initialize</span>(<span class="ruby-identifier">specs</span>, <span class="ruby-identifier">incomplete_specs</span> = [])
  <span class="ruby-ivar">@specs</span> = <span class="ruby-identifier">specs</span>
  <span class="ruby-ivar">@incomplete_specs</span> = <span class="ruby-identifier">incomplete_specs</span>
<span class="ruby-keyword">end</span></pre>
                              </div>
                            </div>


                          </div>

                          </section>

                <section id="public-instance-5Buntitled-5D-method-details" class="method-section">
                <header>
                <h3>Public Instance Methods</h3>
                </header>

                  <div id="method-i-2D" class="method-detail ">
                            <div class="method-heading">
                              <span class="method-name">-</span><span
                                class="method-args">(other)</span>
                              <span class="method-click-advice">click to toggle source</span>
                            </div>

                            <div class="method-description">
                              

                              <div class="method-source-code" id="2D-source">
            <pre><span class="ruby-comment"># File bundler/spec_set.rb, line 127</span>
<span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">-</span>(<span class="ruby-identifier">other</span>)
  <span class="ruby-constant">SpecSet</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">to_a</span> <span class="ruby-operator">-</span> <span class="ruby-identifier">other</span>.<span class="ruby-identifier">to_a</span>)
<span class="ruby-keyword">end</span></pre>
                              </div>
                            </div>


                          </div>

                  <div id="method-i-3C-3C" class="method-detail ">
                            <div class="method-heading">
                              <span class="method-name">&lt;&lt;</span><span
                                class="method-args">(spec)</span>
                              <span class="method-click-advice">click to toggle source</span>
                            </div>

                            <div class="method-description">
                              

                              <div class="method-source-code" id="3C-3C-source">
            <pre><span class="ruby-comment"># File bundler/spec_set.rb, line 148</span>
<span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">&lt;&lt;</span>(<span class="ruby-identifier">spec</span>)
  <span class="ruby-ivar">@specs</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">spec</span>
<span class="ruby-keyword">end</span></pre>
                              </div>
                            </div>


                          </div>

                  <div id="method-i-5B-5D" class="method-detail ">
                            <div class="method-heading">
                              <span class="method-name">[]</span><span
                                class="method-args">(key)</span>
                              <span class="method-click-advice">click to toggle source</span>
                            </div>

                            <div class="method-description">
                              

                              <div class="method-source-code" id="5B-5D-source">
            <pre><span class="ruby-comment"># File bundler/spec_set.rb, line 55</span>
<span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">[]</span>(<span class="ruby-identifier">key</span>)
  <span class="ruby-identifier">key</span> = <span class="ruby-identifier">key</span>.<span class="ruby-identifier">name</span> <span class="ruby-keyword">if</span> <span class="ruby-identifier">key</span>.<span class="ruby-identifier">respond_to?</span>(<span class="ruby-value">:name</span>)
  <span class="ruby-identifier">lookup</span>[<span class="ruby-identifier">key</span>].<span class="ruby-identifier">reverse</span>
<span class="ruby-keyword">end</span></pre>
                              </div>
                            </div>


                          </div>

                  <div id="method-i-5B-5D-3D" class="method-detail ">
                            <div class="method-heading">
                              <span class="method-name">[]=</span><span
                                class="method-args">(key, value)</span>
                              <span class="method-click-advice">click to toggle source</span>
                            </div>

                            <div class="method-description">
                              

                              <div class="method-source-code" id="5B-5D-3D-source">
            <pre><span class="ruby-comment"># File bundler/spec_set.rb, line 60</span>
<span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">[]=</span>(<span class="ruby-identifier">key</span>, <span class="ruby-identifier">value</span>)
  <span class="ruby-ivar">@specs</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">value</span>
  <span class="ruby-ivar">@lookup</span> = <span class="ruby-keyword">nil</span>
  <span class="ruby-ivar">@sorted</span> = <span class="ruby-keyword">nil</span>
<span class="ruby-keyword">end</span></pre>
                              </div>
                            </div>


                          </div>

                  <div id="method-i-delete" class="method-detail ">
                            <div class="method-heading">
                              <span class="method-name">delete</span><span
                                class="method-args">(specs)</span>
                              <span class="method-click-advice">click to toggle source</span>
                            </div>

                            <div class="method-description">
                              

                              <div class="method-source-code" id="delete-source">
            <pre><span class="ruby-comment"># File bundler/spec_set.rb, line 66</span>
<span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">delete</span>(<span class="ruby-identifier">specs</span>)
  <span class="ruby-identifier">specs</span>.<span class="ruby-identifier">each</span> {<span class="ruby-operator">|</span><span class="ruby-identifier">spec</span><span class="ruby-operator">|</span> <span class="ruby-ivar">@specs</span>.<span class="ruby-identifier">delete</span>(<span class="ruby-identifier">spec</span>) }
  <span class="ruby-ivar">@lookup</span> = <span class="ruby-keyword">nil</span>
  <span class="ruby-ivar">@sorted</span> = <span class="ruby-keyword">nil</span>
<span class="ruby-keyword">end</span></pre>
                              </div>
                            </div>


                          </div>

                  <div id="method-i-delete_by_name" class="method-detail ">
                            <div class="method-heading">
                              <span class="method-name">delete_by_name</span><span
                                class="method-args">(name)</span>
                              <span class="method-click-advice">click to toggle source</span>
                            </div>

                            <div class="method-description">
                              

                              <div class="method-source-code" id="delete_by_name-source">
            <pre><span class="ruby-comment"># File bundler/spec_set.rb, line 135</span>
<span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">delete_by_name</span>(<span class="ruby-identifier">name</span>)
  <span class="ruby-ivar">@specs</span>.<span class="ruby-identifier">reject!</span> {<span class="ruby-operator">|</span><span class="ruby-identifier">spec</span><span class="ruby-operator">|</span> <span class="ruby-identifier">spec</span>.<span class="ruby-identifier">name</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">name</span> }
  <span class="ruby-ivar">@lookup</span> = <span class="ruby-keyword">nil</span>
  <span class="ruby-ivar">@sorted</span> = <span class="ruby-keyword">nil</span>
<span class="ruby-keyword">end</span></pre>
                              </div>
                            </div>


                          </div>

                  <div id="method-i-each" class="method-detail ">
                            <div class="method-heading">
                              <span class="method-name">each</span><span
                                class="method-args">(&amp;b)</span>
                              <span class="method-click-advice">click to toggle source</span>
                            </div>

                            <div class="method-description">
                              

                              <div class="method-source-code" id="each-source">
            <pre><span class="ruby-comment"># File bundler/spec_set.rb, line 164</span>
<span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">each</span>(<span class="ruby-operator">&amp;</span><span class="ruby-identifier">b</span>)
  <span class="ruby-identifier">sorted</span>.<span class="ruby-identifier">each</span>(<span class="ruby-operator">&amp;</span><span class="ruby-identifier">b</span>)
<span class="ruby-keyword">end</span></pre>
                              </div>
                            </div>


                          </div>

                  <div id="method-i-empty-3F" class="method-detail ">
                            <div class="method-heading">
                              <span class="method-name">empty?</span><span
                                class="method-args">()</span>
                              <span class="method-click-advice">click to toggle source</span>
                            </div>

                            <div class="method-description">
                              

                              <div class="method-source-code" id="empty-3F-source">
            <pre><span class="ruby-comment"># File bundler/spec_set.rb, line 160</span>
<span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">empty?</span>
  <span class="ruby-ivar">@specs</span>.<span class="ruby-identifier">empty?</span>
<span class="ruby-keyword">end</span></pre>
                              </div>
                            </div>


                          </div>

                  <div id="method-i-find_by_name_and_platform" class="method-detail ">
                            <div class="method-heading">
                              <span class="method-name">find_by_name_and_platform</span><span
                                class="method-args">(name, platform)</span>
                              <span class="method-click-advice">click to toggle source</span>
                            </div>

                            <div class="method-description">
                              

                              <div class="method-source-code" id="find_by_name_and_platform-source">
            <pre><span class="ruby-comment"># File bundler/spec_set.rb, line 131</span>
<span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">find_by_name_and_platform</span>(<span class="ruby-identifier">name</span>, <span class="ruby-identifier">platform</span>)
  <span class="ruby-ivar">@specs</span>.<span class="ruby-identifier">detect</span> {<span class="ruby-operator">|</span><span class="ruby-identifier">spec</span><span class="ruby-operator">|</span> <span class="ruby-identifier">spec</span>.<span class="ruby-identifier">name</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">name</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">spec</span>.<span class="ruby-identifier">match_platform</span>(<span class="ruby-identifier">platform</span>) }
<span class="ruby-keyword">end</span></pre>
                              </div>
                            </div>


                          </div>

                  <div id="method-i-for" class="method-detail ">
                            <div class="method-heading">
                              <span class="method-name">for</span><span
                                class="method-args">(dependencies, check = false, platforms = [nil])</span>
                              <span class="method-click-advice">click to toggle source</span>
                            </div>

                            <div class="method-description">
                              

                              <div class="method-source-code" id="for-source">
            <pre><span class="ruby-comment"># File bundler/spec_set.rb, line 17</span>
<span class="ruby-keyword">def</span> <span class="ruby-keyword">for</span>(<span class="ruby-identifier ruby-title">dependencies</span>, <span class="ruby-identifier">check</span> = <span class="ruby-keyword">false</span>, <span class="ruby-identifier">platforms</span> = [<span class="ruby-keyword">nil</span>])
  <span class="ruby-identifier">handled</span> = [<span class="ruby-string">&quot;bundler&quot;</span>].<span class="ruby-identifier">product</span>(<span class="ruby-identifier">platforms</span>).<span class="ruby-identifier">map</span> {<span class="ruby-operator">|</span><span class="ruby-identifier">k</span><span class="ruby-operator">|</span> [<span class="ruby-identifier">k</span>, <span class="ruby-keyword">true</span>] }.<span class="ruby-identifier">to_h</span>
  <span class="ruby-identifier">deps</span> = <span class="ruby-identifier">dependencies</span>.<span class="ruby-identifier">product</span>(<span class="ruby-identifier">platforms</span>)
  <span class="ruby-identifier">specs</span> = []

  <span class="ruby-identifier">loop</span> <span class="ruby-keyword">do</span>
    <span class="ruby-keyword">break</span> <span class="ruby-keyword">unless</span> <span class="ruby-identifier">dep</span> = <span class="ruby-identifier">deps</span>.<span class="ruby-identifier">shift</span>

    <span class="ruby-identifier">name</span> = <span class="ruby-identifier">dep</span>[<span class="ruby-value">0</span>].<span class="ruby-identifier">name</span>
    <span class="ruby-identifier">platform</span> = <span class="ruby-identifier">dep</span>[<span class="ruby-value">1</span>]
    <span class="ruby-identifier">incomplete</span> = <span class="ruby-keyword">false</span>

    <span class="ruby-identifier">key</span> = [<span class="ruby-identifier">name</span>, <span class="ruby-identifier">platform</span>]
    <span class="ruby-keyword">next</span> <span class="ruby-keyword">if</span> <span class="ruby-identifier">handled</span>.<span class="ruby-identifier">key?</span>(<span class="ruby-identifier">key</span>)

    <span class="ruby-identifier">handled</span>[<span class="ruby-identifier">key</span>] = <span class="ruby-keyword">true</span>

    <span class="ruby-identifier">specs_for_dep</span> = <span class="ruby-identifier">specs_for_dependency</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">dep</span>)
    <span class="ruby-keyword">if</span> <span class="ruby-identifier">specs_for_dep</span>.<span class="ruby-identifier">any?</span>
      <span class="ruby-identifier">specs</span>.<span class="ruby-identifier">concat</span>(<span class="ruby-identifier">specs_for_dep</span>)

      <span class="ruby-identifier">specs_for_dep</span>.<span class="ruby-identifier">first</span>.<span class="ruby-identifier">dependencies</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">d</span><span class="ruby-operator">|</span>
        <span class="ruby-keyword">next</span> <span class="ruby-keyword">if</span> <span class="ruby-identifier">d</span>.<span class="ruby-identifier">type</span> <span class="ruby-operator">==</span> <span class="ruby-value">:development</span>
        <span class="ruby-identifier">incomplete</span> = <span class="ruby-keyword">true</span> <span class="ruby-keyword">if</span> <span class="ruby-identifier">d</span>.<span class="ruby-identifier">name</span> <span class="ruby-operator">!=</span> <span class="ruby-string">&quot;bundler&quot;</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">lookup</span>[<span class="ruby-identifier">d</span>.<span class="ruby-identifier">name</span>].<span class="ruby-identifier">empty?</span>
        <span class="ruby-identifier">deps</span> <span class="ruby-operator">&lt;&lt;</span> [<span class="ruby-identifier">d</span>, <span class="ruby-identifier">dep</span>[<span class="ruby-value">1</span>]]
      <span class="ruby-keyword">end</span>
    <span class="ruby-keyword">else</span>
      <span class="ruby-identifier">incomplete</span> = <span class="ruby-keyword">true</span>
    <span class="ruby-keyword">end</span>

    <span class="ruby-keyword">if</span> <span class="ruby-identifier">incomplete</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">check</span>
      <span class="ruby-ivar">@incomplete_specs</span> <span class="ruby-operator">+=</span> <span class="ruby-identifier">lookup</span>[<span class="ruby-identifier">name</span>].<span class="ruby-identifier">any?</span> <span class="ruby-operator">?</span> <span class="ruby-identifier">lookup</span>[<span class="ruby-identifier">name</span>] <span class="ruby-operator">:</span> [<span class="ruby-constant">LazySpecification</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">name</span>, <span class="ruby-keyword">nil</span>, <span class="ruby-keyword">nil</span>)]
    <span class="ruby-keyword">end</span>
  <span class="ruby-keyword">end</span>

  <span class="ruby-identifier">specs</span>.<span class="ruby-identifier">uniq</span>
<span class="ruby-keyword">end</span></pre>
                              </div>
                            </div>


                          </div>

                  <div id="method-i-incomplete_ruby_specs-3F" class="method-detail ">
                            <div class="method-heading">
                              <span class="method-name">incomplete_ruby_specs?</span><span
                                class="method-args">(deps)</span>
                              <span class="method-click-advice">click to toggle source</span>
                            </div>

                            <div class="method-description">
                              

                              <div class="method-source-code" id="incomplete_ruby_specs-3F-source">
            <pre><span class="ruby-comment"># File bundler/spec_set.rb, line 103</span>
<span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">incomplete_ruby_specs?</span>(<span class="ruby-identifier">deps</span>)
  <span class="ruby-keyword">return</span> <span class="ruby-keyword">false</span> <span class="ruby-keyword">if</span> <span class="ruby-ivar">@specs</span>.<span class="ruby-identifier">empty?</span>

  <span class="ruby-ivar">@incomplete_specs</span> = []

  <span class="ruby-keyword">self</span>.<span class="ruby-identifier">for</span>(<span class="ruby-identifier">deps</span>, <span class="ruby-keyword">true</span>, [<span class="ruby-constant">Gem</span><span class="ruby-operator">::</span><span class="ruby-constant">Platform</span><span class="ruby-operator">::</span><span class="ruby-constant">RUBY</span>])

  <span class="ruby-ivar">@incomplete_specs</span>.<span class="ruby-identifier">any?</span>
<span class="ruby-keyword">end</span></pre>
                              </div>
                            </div>


                          </div>

                  <div id="method-i-length" class="method-detail ">
                            <div class="method-heading">
                              <span class="method-name">length</span><span
                                class="method-args">()</span>
                              <span class="method-click-advice">click to toggle source</span>
                            </div>

                            <div class="method-description">
                              

                              <div class="method-source-code" id="length-source">
            <pre><span class="ruby-comment"># File bundler/spec_set.rb, line 152</span>
<span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">length</span>
  <span class="ruby-ivar">@specs</span>.<span class="ruby-identifier">length</span>
<span class="ruby-keyword">end</span></pre>
                              </div>
                            </div>


                          </div>

                  <div id="method-i-materialize" class="method-detail ">
                            <div class="method-heading">
                              <span class="method-name">materialize</span><span
                                class="method-args">(deps)</span>
                              <span class="method-click-advice">click to toggle source</span>
                            </div>

                            <div class="method-description">
                              

                              <div class="method-source-code" id="materialize-source">
            <pre><span class="ruby-comment"># File bundler/spec_set.rb, line 84</span>
<span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">materialize</span>(<span class="ruby-identifier">deps</span>)
  <span class="ruby-identifier">materialized</span> = <span class="ruby-keyword">self</span>.<span class="ruby-identifier">for</span>(<span class="ruby-identifier">deps</span>, <span class="ruby-keyword">true</span>)

  <span class="ruby-constant">SpecSet</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">materialized</span>, <span class="ruby-identifier">incomplete_specs</span>)
<span class="ruby-keyword">end</span></pre>
                              </div>
                            </div>


                          </div>

                  <div id="method-i-materialized_for_all_platforms" class="method-detail ">
                            <div class="method-heading">
                              <span class="method-name">materialized_for_all_platforms</span><span
                                class="method-args">()</span>
                              <span class="method-click-advice">click to toggle source</span>
                            </div>

                            <div class="method-description">
                              <p>Materialize for all the specs in the spec set, regardless of what platform they’re for This is in contrast to how for does platform filtering (and specifically different from how ‘materialize` calls `for` only for the current platform) @return [Array&lt;Gem::Specification&gt;]</p>

                              <div class="method-source-code" id="materialized_for_all_platforms-source">
            <pre><span class="ruby-comment"># File bundler/spec_set.rb, line 93</span>
<span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">materialized_for_all_platforms</span>
  <span class="ruby-ivar">@specs</span>.<span class="ruby-identifier">map</span> <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">s</span><span class="ruby-operator">|</span>
    <span class="ruby-keyword">next</span> <span class="ruby-identifier">s</span> <span class="ruby-keyword">unless</span> <span class="ruby-identifier">s</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">LazySpecification</span>)
    <span class="ruby-identifier">s</span>.<span class="ruby-identifier">source</span>.<span class="ruby-identifier">remote!</span>
    <span class="ruby-identifier">spec</span> = <span class="ruby-identifier">s</span>.<span class="ruby-identifier">materialize_for_installation</span>
    <span class="ruby-identifier">raise</span> <span class="ruby-constant">GemNotFound</span>, <span class="ruby-node">&quot;Could not find #{s.full_name} in any of the sources&quot;</span> <span class="ruby-keyword">unless</span> <span class="ruby-identifier">spec</span>
    <span class="ruby-identifier">spec</span>
  <span class="ruby-keyword">end</span>
<span class="ruby-keyword">end</span></pre>
                              </div>
                            </div>


                          </div>

                  <div id="method-i-merge" class="method-detail ">
                            <div class="method-heading">
                              <span class="method-name">merge</span><span
                                class="method-args">(set)</span>
                              <span class="method-click-advice">click to toggle source</span>
                            </div>

                            <div class="method-description">
                              

                              <div class="method-source-code" id="merge-source">
            <pre><span class="ruby-comment"># File bundler/spec_set.rb, line 117</span>
<span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">merge</span>(<span class="ruby-identifier">set</span>)
  <span class="ruby-identifier">arr</span> = <span class="ruby-identifier">sorted</span>.<span class="ruby-identifier">dup</span>
  <span class="ruby-identifier">set</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">set_spec</span><span class="ruby-operator">|</span>
    <span class="ruby-identifier">full_name</span> = <span class="ruby-identifier">set_spec</span>.<span class="ruby-identifier">full_name</span>
    <span class="ruby-keyword">next</span> <span class="ruby-keyword">if</span> <span class="ruby-identifier">arr</span>.<span class="ruby-identifier">any?</span> {<span class="ruby-operator">|</span><span class="ruby-identifier">spec</span><span class="ruby-operator">|</span> <span class="ruby-identifier">spec</span>.<span class="ruby-identifier">full_name</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">full_name</span> }
    <span class="ruby-identifier">arr</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">set_spec</span>
  <span class="ruby-keyword">end</span>
  <span class="ruby-constant">SpecSet</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">arr</span>)
<span class="ruby-keyword">end</span></pre>
                              </div>
                            </div>


                          </div>

                  <div id="method-i-missing_specs" class="method-detail ">
                            <div class="method-heading">
                              <span class="method-name">missing_specs</span><span
                                class="method-args">()</span>
                              <span class="method-click-advice">click to toggle source</span>
                            </div>

                            <div class="method-description">
                              

                              <div class="method-source-code" id="missing_specs-source">
            <pre><span class="ruby-comment"># File bundler/spec_set.rb, line 113</span>
<span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">missing_specs</span>
  <span class="ruby-ivar">@specs</span>.<span class="ruby-identifier">select</span> {<span class="ruby-operator">|</span><span class="ruby-identifier">s</span><span class="ruby-operator">|</span> <span class="ruby-identifier">s</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">LazySpecification</span>) }
<span class="ruby-keyword">end</span></pre>
                              </div>
                            </div>


                          </div>

                  <div id="method-i-size" class="method-detail ">
                            <div class="method-heading">
                              <span class="method-name">size</span><span
                                class="method-args">()</span>
                              <span class="method-click-advice">click to toggle source</span>
                            </div>

                            <div class="method-description">
                              

                              <div class="method-source-code" id="size-source">
            <pre><span class="ruby-comment"># File bundler/spec_set.rb, line 156</span>
<span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">size</span>
  <span class="ruby-ivar">@specs</span>.<span class="ruby-identifier">size</span>
<span class="ruby-keyword">end</span></pre>
                              </div>
                            </div>


                          </div>

                  <div id="method-i-sort-21" class="method-detail ">
                            <div class="method-heading">
                              <span class="method-name">sort!</span><span
                                class="method-args">()</span>
                              <span class="method-click-advice">click to toggle source</span>
                            </div>

                            <div class="method-description">
                              

                              <div class="method-source-code" id="sort-21-source">
            <pre><span class="ruby-comment"># File bundler/spec_set.rb, line 72</span>
<span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">sort!</span>
  <span class="ruby-keyword">self</span>
<span class="ruby-keyword">end</span></pre>
                              </div>
                            </div>


                          </div>

                  <div id="method-i-to_a" class="method-detail ">
                            <div class="method-heading">
                              <span class="method-name">to_a</span><span
                                class="method-args">()</span>
                              <span class="method-click-advice">click to toggle source</span>
                            </div>

                            <div class="method-description">
                              

                              <div class="method-source-code" id="to_a-source">
            <pre><span class="ruby-comment"># File bundler/spec_set.rb, line 76</span>
<span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">to_a</span>
  <span class="ruby-identifier">sorted</span>.<span class="ruby-identifier">dup</span>
<span class="ruby-keyword">end</span></pre>
                              </div>
                            </div>


                          </div>

                  <div id="method-i-to_hash" class="method-detail ">
                            <div class="method-heading">
                              <span class="method-name">to_hash</span><span
                                class="method-args">()</span>
                              <span class="method-click-advice">click to toggle source</span>
                            </div>

                            <div class="method-description">
                              

                              <div class="method-source-code" id="to_hash-source">
            <pre><span class="ruby-comment"># File bundler/spec_set.rb, line 80</span>
<span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">to_hash</span>
  <span class="ruby-identifier">lookup</span>.<span class="ruby-identifier">dup</span>
<span class="ruby-keyword">end</span></pre>
                              </div>
                            </div>


                          </div>

                  <div id="method-i-what_required" class="method-detail ">
                            <div class="method-heading">
                              <span class="method-name">what_required</span><span
                                class="method-args">(spec)</span>
                              <span class="method-click-advice">click to toggle source</span>
                            </div>

                            <div class="method-description">
                              

                              <div class="method-source-code" id="what_required-source">
            <pre><span class="ruby-comment"># File bundler/spec_set.rb, line 141</span>
<span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">what_required</span>(<span class="ruby-identifier">spec</span>)
  <span class="ruby-keyword">unless</span> <span class="ruby-identifier">req</span> = <span class="ruby-identifier">find</span> {<span class="ruby-operator">|</span><span class="ruby-identifier">s</span><span class="ruby-operator">|</span> <span class="ruby-identifier">s</span>.<span class="ruby-identifier">dependencies</span>.<span class="ruby-identifier">any?</span> {<span class="ruby-operator">|</span><span class="ruby-identifier">d</span><span class="ruby-operator">|</span> <span class="ruby-identifier">d</span>.<span class="ruby-identifier">type</span> <span class="ruby-operator">==</span> <span class="ruby-value">:runtime</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">d</span>.<span class="ruby-identifier">name</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">spec</span>.<span class="ruby-identifier">name</span> } }
    <span class="ruby-keyword">return</span> [<span class="ruby-identifier">spec</span>]
  <span class="ruby-keyword">end</span>
  <span class="ruby-identifier">what_required</span>(<span class="ruby-identifier">req</span>) <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">spec</span>
<span class="ruby-keyword">end</span></pre>
                              </div>
                            </div>


                          </div>

                          </section>

                <section id="private-instance-5Buntitled-5D-method-details" class="method-section">
                <header>
                <h3>Private Instance Methods</h3>
                </header>

                  <div id="method-i-extract_circular_gems" class="method-detail ">
                            <div class="method-heading">
                              <span class="method-name">extract_circular_gems</span><span
                                class="method-args">(error)</span>
                              <span class="method-click-advice">click to toggle source</span>
                            </div>

                            <div class="method-description">
                              

                              <div class="method-source-code" id="extract_circular_gems-source">
            <pre><span class="ruby-comment"># File bundler/spec_set.rb, line 182</span>
<span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">extract_circular_gems</span>(<span class="ruby-identifier">error</span>)
  <span class="ruby-identifier">error</span>.<span class="ruby-identifier">message</span>.<span class="ruby-identifier">scan</span>(<span class="ruby-regexp">/@name=&quot;(.*?)&quot;/</span>).<span class="ruby-identifier">flatten</span>
<span class="ruby-keyword">end</span></pre>
                              </div>
                            </div>


                          </div>

                  <div id="method-i-lookup" class="method-detail ">
                            <div class="method-heading">
                              <span class="method-name">lookup</span><span
                                class="method-args">()</span>
                              <span class="method-click-advice">click to toggle source</span>
                            </div>

                            <div class="method-description">
                              

                              <div class="method-source-code" id="lookup-source">
            <pre><span class="ruby-comment"># File bundler/spec_set.rb, line 186</span>
<span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">lookup</span>
  <span class="ruby-ivar">@lookup</span> <span class="ruby-operator">||=</span> <span class="ruby-keyword">begin</span>
    <span class="ruby-identifier">lookup</span> = <span class="ruby-constant">Hash</span>.<span class="ruby-identifier">new</span> {<span class="ruby-operator">|</span><span class="ruby-identifier">h</span>, <span class="ruby-identifier">k</span><span class="ruby-operator">|</span> <span class="ruby-identifier">h</span>[<span class="ruby-identifier">k</span>] = [] }
    <span class="ruby-ivar">@specs</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">s</span><span class="ruby-operator">|</span>
      <span class="ruby-identifier">lookup</span>[<span class="ruby-identifier">s</span>.<span class="ruby-identifier">name</span>] <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">s</span>
    <span class="ruby-keyword">end</span>
    <span class="ruby-identifier">lookup</span>
  <span class="ruby-keyword">end</span>
<span class="ruby-keyword">end</span></pre>
                              </div>
                            </div>


                          </div>

                  <div id="method-i-sorted" class="method-detail ">
                            <div class="method-heading">
                              <span class="method-name">sorted</span><span
                                class="method-args">()</span>
                              <span class="method-click-advice">click to toggle source</span>
                            </div>

                            <div class="method-description">
                              

                              <div class="method-source-code" id="sorted-source">
            <pre><span class="ruby-comment"># File bundler/spec_set.rb, line 170</span>
<span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">sorted</span>
  <span class="ruby-identifier">rake</span> = <span class="ruby-ivar">@specs</span>.<span class="ruby-identifier">find</span> {<span class="ruby-operator">|</span><span class="ruby-identifier">s</span><span class="ruby-operator">|</span> <span class="ruby-identifier">s</span>.<span class="ruby-identifier">name</span> <span class="ruby-operator">==</span> <span class="ruby-string">&quot;rake&quot;</span> }
  <span class="ruby-keyword">begin</span>
    <span class="ruby-ivar">@sorted</span> <span class="ruby-operator">||=</span> ([<span class="ruby-identifier">rake</span>] <span class="ruby-operator">+</span> <span class="ruby-identifier">tsort</span>).<span class="ruby-identifier">compact</span>.<span class="ruby-identifier">uniq</span>
  <span class="ruby-keyword">rescue</span> <span class="ruby-constant">TSort</span><span class="ruby-operator">::</span><span class="ruby-constant">Cyclic</span> <span class="ruby-operator">=&gt;</span> <span class="ruby-identifier">error</span>
    <span class="ruby-identifier">cgems</span> = <span class="ruby-identifier">extract_circular_gems</span>(<span class="ruby-identifier">error</span>)
    <span class="ruby-identifier">raise</span> <span class="ruby-constant">CyclicDependencyError</span>, <span class="ruby-string">&quot;Your bundle requires gems that depend&quot;</span> \
      <span class="ruby-string">&quot; on each other, creating an infinite loop. Please remove either&quot;</span> \
      <span class="ruby-node">&quot; gem &#39;#{cgems[0]}&#39; or gem &#39;#{cgems[1]}&#39; and try again.&quot;</span>
  <span class="ruby-keyword">end</span>
<span class="ruby-keyword">end</span></pre>
                              </div>
                            </div>


                          </div>

                  <div id="method-i-specs_for_dependency" class="method-detail ">
                            <div class="method-heading">
                              <span class="method-name">specs_for_dependency</span><span
                                class="method-args">(dep, platform)</span>
                              <span class="method-click-advice">click to toggle source</span>
                            </div>

                            <div class="method-description">
                              

                              <div class="method-source-code" id="specs_for_dependency-source">
            <pre><span class="ruby-comment"># File bundler/spec_set.rb, line 201</span>
<span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">specs_for_dependency</span>(<span class="ruby-identifier">dep</span>, <span class="ruby-identifier">platform</span>)
  <span class="ruby-identifier">specs_for_name</span> = <span class="ruby-identifier">lookup</span>[<span class="ruby-identifier">dep</span>.<span class="ruby-identifier">name</span>]
  <span class="ruby-identifier">target_platform</span> = <span class="ruby-identifier">dep</span>.<span class="ruby-identifier">force_ruby_platform</span> <span class="ruby-operator">?</span> <span class="ruby-constant">Gem</span><span class="ruby-operator">::</span><span class="ruby-constant">Platform</span><span class="ruby-operator">::</span><span class="ruby-constant">RUBY</span> <span class="ruby-operator">:</span> (<span class="ruby-identifier">platform</span> <span class="ruby-operator">||</span> <span class="ruby-constant">Bundler</span>.<span class="ruby-identifier">local_platform</span>)
  <span class="ruby-identifier">matching_specs</span> = <span class="ruby-constant">GemHelpers</span>.<span class="ruby-identifier">select_best_platform_match</span>(<span class="ruby-identifier">specs_for_name</span>, <span class="ruby-identifier">target_platform</span>)
  <span class="ruby-identifier">matching_specs</span>.<span class="ruby-identifier">map!</span>(<span class="ruby-operator">&amp;</span><span class="ruby-value">:materialize_for_installation</span>).<span class="ruby-identifier">compact!</span> <span class="ruby-keyword">if</span> <span class="ruby-identifier">platform</span>.<span class="ruby-identifier">nil?</span>
  <span class="ruby-identifier">matching_specs</span>
<span class="ruby-keyword">end</span></pre>
                              </div>
                            </div>


                          </div>

                  <div id="method-i-tsort_each_child" class="method-detail ">
                            <div class="method-heading">
                              <span class="method-name">tsort_each_child</span><span
                                class="method-args">(s) { |s2| ... }</span>
                              <span class="method-click-advice">click to toggle source</span>
                            </div>

                            <div class="method-description">
                              

                              <div class="method-source-code" id="tsort_each_child-source">
            <pre><span class="ruby-comment"># File bundler/spec_set.rb, line 209</span>
<span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">tsort_each_child</span>(<span class="ruby-identifier">s</span>)
  <span class="ruby-identifier">s</span>.<span class="ruby-identifier">dependencies</span>.<span class="ruby-identifier">sort_by</span>(<span class="ruby-operator">&amp;</span><span class="ruby-value">:name</span>).<span class="ruby-identifier">each</span> <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">d</span><span class="ruby-operator">|</span>
    <span class="ruby-keyword">next</span> <span class="ruby-keyword">if</span> <span class="ruby-identifier">d</span>.<span class="ruby-identifier">type</span> <span class="ruby-operator">==</span> <span class="ruby-value">:development</span>
    <span class="ruby-identifier">lookup</span>[<span class="ruby-identifier">d</span>.<span class="ruby-identifier">name</span>].<span class="ruby-identifier">each</span> {<span class="ruby-operator">|</span><span class="ruby-identifier">s2</span><span class="ruby-operator">|</span> <span class="ruby-keyword">yield</span> <span class="ruby-identifier">s2</span> }
  <span class="ruby-keyword">end</span>
<span class="ruby-keyword">end</span></pre>
                              </div>
                            </div>


                          </div>

                  <div id="method-i-tsort_each_node" class="method-detail ">
                            <div class="method-heading">
                              <span class="method-name">tsort_each_node</span><span
                                class="method-args">() { |s| ... }</span>
                              <span class="method-click-advice">click to toggle source</span>
                            </div>

                            <div class="method-description">
                              

                              <div class="method-source-code" id="tsort_each_node-source">
            <pre><span class="ruby-comment"># File bundler/spec_set.rb, line 196</span>
<span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">tsort_each_node</span>
  <span class="ruby-comment"># MUST sort by name for backwards compatibility</span>
  <span class="ruby-ivar">@specs</span>.<span class="ruby-identifier">sort_by</span>(<span class="ruby-operator">&amp;</span><span class="ruby-value">:name</span>).<span class="ruby-identifier">each</span> {<span class="ruby-operator">|</span><span class="ruby-identifier">s</span><span class="ruby-operator">|</span> <span class="ruby-keyword">yield</span> <span class="ruby-identifier">s</span> }
<span class="ruby-keyword">end</span></pre>
                              </div>
                            </div>


                          </div>

                          </section>

              </section>
              </main>



            </div>  <!--  class='wrapper hdiv' -->


<footer id="validator-badges" role="contentinfo">
<p><a href="https://validator.w3.org/check/referer">Validate</a></p>
<p>Generated by <a href="https://ruby.github.io/rdoc/">RDoc</a> 6.4.0.</p>
<p>Based on <a href="https://github.com/ged/darkfish/">Darkfish</a> by <a href="http://deveiate.org">Michael Granger</a>.</p>

  
    <p><p><a href="https://ruby-doc.org">Ruby-doc.org</a> is a service of <a href="https://jamesbritt.com">James Britt</a> and <a href="https://neurogami.com">Neurogami</a>, purveyors of fine <a href='https://jamesbritt.bandcamp.com/'>dance noise</a></p>
</p>
  
  </footer>

<script type="text/javascript">


  let ads  = $("#carbonads-container").children().detach();


  function swapMode() {
    var cookieName = 'darkmode';
    var cssDarkmode = Cookies.get(cookieName);
    console.log("***** swapMode! " + cssDarkmode + " *****");


    if (cssDarkmode == "true") {
      console.log("We have dark mode, set the css to light ...");
      $('#rdoccss').attr("href", defaultModeCssHref);
      $('#cssSelect').text("Dark mode");
      cssDarkmode = "false";
      console.log("swapMode! Now set cookie to " + cssDarkmode);
      Cookies.set(cookieName, cssDarkmode);

    } else {
      console.log("We not have dark mode, set the css to dark ...");
      $('#rdoccss').attr("href", darkModeCsseHref);
      $('#cssSelect').text("Light mode");
      cssDarkmode = "true";
      console.log("swapMode! Now set cookie to " + cssDarkmode);
      Cookies.set(cookieName, cssDarkmode);

    }

    console.log("  --------------- ");
  }


const vueCssApp = new Vue({
el: '#menubar',
data: {
isDark: false
},
methods: {
toggleClass: function(event){
this.isDark = !this.isDark;
}
}
})

const vueApp = new Vue({
el: '#vapp',
data: { 
isOpen: true
},

mounted() {
this.handleResize();
this.manage_mob_classes();
window.addEventListener('resize', this.handleResize)
//this.isOpen !=  (/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent));
},
destroyed() {
window.removeEventListener('resize', this.handleResize)
},
created() {
//manage_mob_classes();
},

methods : {
isMobile() {
  return (/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent));
},

  handleResize() {
    if (!this.isMobile()) {
      this.isOpen = window.innerWidth > 800;
    }
  },

  manage_mob_classes() {
    if (/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent)) {
      $("nav").addClass("mob_nav");
      $("main").addClass("mob_main");
      $("#extraz").addClass("mob_extraz");
      $("#carbonads-container").addClass("mob_carbonads-container");
      this.isOpen  = false;
    } else {
      $("nav").removeClass("mob_nav") 
        $("main").removeClass("mob_main");
      $("#extraz").removeClass("mob_extraz");
      $("#carbonads-container").removeClass("mob_carbonads-container");
      this.isOpen  = true;
    }
  },

  toggleNav() {
    this.isOpen =! this.isOpen ;
    // alert("Toggle nav!");
    console.log("toggleNav() click: " + this.isOpen );
  }
}
})

$("#carbonads-container").append(ads);


$(function() {

    var darkmode = Cookies.get("darkmode");
    console.log("Document ready: " + darkmode);

    if ( darkmode  == "true" ) {
      $('#cssSelect').text("Light mode");
    } else {
      $('#cssSelect').text("Dark mode");
     }

    $('body').css('display','block');
    });

</script>

    
  </body> 
</html>

